// import _ from "lodash";
// import type {Condition} from "./dao.types.ts";
//
//
// export class Meta {
//     fields: { [key: string]: MetaField } = {}
//     path?: string
//     code?: string
//     meta_name?: string
//     view_name?: string
//
//     form_width: number = 0
//     form_height: number = 0
//     table_width: number = 0
//     table_height: number = 0
//
//     enable: boolean = true
//     show_header: boolean = true
//     allow_batch: boolean = true
//     allow_search: boolean = true
//     allow_sort: boolean = true
//     allow_pop: boolean = true
//     allow_insert: boolean = true
//     allow_edit: boolean = true
//     allow_remove: boolean = true
//     allow_download: boolean = true
//     allow_upload: boolean = true
//
//     constructor() {
//     }
//
//     load(item?: { [key: string]: any }) {
//         console.log(item)
//     }
//
// }
//
// export class MetaField {
//     prop?: string
//     label?: string
//     name?: string
//     domain?: string
//     tool?: string
//     refer: MetaRefer = {}
//     format: MetaFormat = {}
//     unit: string | null = null
//     not_null: boolean = false
//     read_only: boolean = false
//     sortable: boolean = true
//     allow_search: boolean = true
//     allow_download: boolean = true
//     allow_upload: boolean = true
//     allow_update: boolean = true
//     column_width: number = 0
//     align: 'left' | 'center' | 'right' = 'left'
//     fixed: '' | 'left' | 'right' = ''
//     header_color: string | null = null
//     cell_color: string | null = null
//     edit_on_table: boolean = true
//     hide_on_table: boolean = false
//     span: number = 0
//     hide_on_form: boolean = false
//     hide_on_form_edit: boolean = false
//     hide_on_form_insert: boolean = false
//     hide_on_form_branch: boolean = false
//     hide_on_form_leaf: boolean = false
//
//     constructor(item: { [key: string]: any }) {
//         Object.keys(this).forEach(key => Object.assign(this, key, item[key]))
//     }
// }
//
// export type MetaRefer = {
//     entity?: string,
//     value?: string,
//     label?: string,
//     display?: string,
//     multiple?: boolean,
//     strict?: boolean,
//     remote?: boolean,
//     includes?: object,
//     excludes?: object,
//     root?: number
// }
// export type MetaFormat = {
//     maxlength?: number,
//     type?: 'date' | 'datetime',
//     min?: number | null,
//     max?: number | null,
//     step?: number | null,
//     precision?: number | null,
//     step_strictly?: boolean,
//     accept?: string,
//     width?: number | string,
//     height?: number | string,
//     locket?: boolean,
// }